//#include <_base.js>

// Funzioni di callback

/**
* CWN2
*
* @module CWN2
*/

//Namespace
CWN2.event = CWN2.event || {};

/**
* 
* Funzione di callback che viene chiamata in seguito ad un evento di select
* su una feature vettoriale
* 
* @namespace CWN2.event
* @class onFeatureSelect
* 
* @param {obj} evt Oggetto evento
* 
*/

CWN2.event.onFeatureSelect = function(evt) {
    var feature = evt.feature;

    // se impostato attributo infoUrl sul GeoJSON con i dati uso quello
    // altrimenti uso la infoUrl definita sulla configurazione del layer
    var url = feature.attributes.infoUrl;
    var target = feature.attributes.infoTarget;
	if (!url) {
		var layerName = evt.object.name;
		var layerConfig = CWN2.configuration.getLayerConfigByName(layerName);
		url = layerConfig.infoUrl;
		target = layerConfig.infoTarget;
		// attribute replacement {$attribute_name} - utilizzo la funzione OpenLayers.Style.createLiteral
		url = OpenLayers.Style.createLiteral(url,feature.attributes,feature);
	}
	
	if (url) {
		if (target) {
			window.open(url,target,'');
		}
		else {
			window.document.location.href=url;
		}
	}
};


CWN2.event.onFeatureUnselect = function (evt) {
    feature = evt.feature;
};



/* funzioni per gestione popup
CWN2.event.onPopupClose = function(evt) {
    // 'this' is the popup.
    selectControl.unselect(this.feature);
}

CWN2.event.onFeatureSelect = function(evt) {
    feature = evt.feature;
    popup = new OpenLayers.Popup.FramedCloud("featurePopup",
                             feature.geometry.getBounds().getCenterLonLat(),
                             new OpenLayers.Size(100,100),
                             "<h2>"+feature.attributes.title + "</h2>" +
                             feature.attributes.description,
                             null, true, onPopupClose);
    feature.popup = popup;
    popup.feature = feature;
    this.addPopup(popup);
}

CWN2.event.onFeatureUnselect = function(evt) {
    feature = evt.feature;
    if (feature.popup) {
        popup.feature = null;
        this.removePopup(feature.popup);
        feature.popup.destroy();
        feature.popup = null;
    }
}
*/

